<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
            时间O(N)
            空间O(1)
        */
        function backspaceCompare(S, T) {
            let sSkipNum = 0; // 记录S的#数量
            let tSkipNum = 0; // 记录T的#数量
            let i = S.length - 1;
            let j = T.length - 1;
            
            while (true) {
                debugger
                // 从后向前，消除S的#
                while (i >= 0) {
                    if (S[i] === '#') {
                        sSkipNum++;
                    } else {
                        if (sSkipNum > 0) {
                            sSkipNum--;
                        } else {
                            break;
                        }
                    }
                    i--;
                }
                
                // 从后向前，消除T的#
                while (j >= 0) {
                    if (T[j] === '#') {
                        tSkipNum++;
                    } else {
                        if (tSkipNum > 0) {
                            tSkipNum--;
                        } else {
                            break;
                        }
                    }
                    j--;
                }
                
                // 后半部分#消除完了，比较当前字符
                if (i < 0 || j < 0) break; // 其中一个字符串遍历完了
                
                if (S[i] !== T[j]) {
                    return false;
                }
                
                i--;
                j--;
            }
            
            // 检查是否两个字符串都遍历完了
            return i === -1 && j === -1;
        }
        console.log(backspaceCompare('abe##c', 'adf##c'));
    </script>
</body>

</html>